﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Cuba.Consulta.CRN;
using log4net;

public partial class Consulta_StepDetails : System.Web.UI.Page
{
    private static readonly ILog log = LogManager.GetLogger("LogFile");

    protected override void InitializeCulture()
    {
        if (!IsPostBack)
        {
            string lang = Request.QueryString["lang"];
            if (string.IsNullOrEmpty(lang))
                return;
            CubaSite.Configuracion.LanguageUtilities.ChangeLanguageFromContext(lang);
        }
        else
            CubaSite.Configuracion.LanguageUtilities.SetLanguageFromContext();
        base.InitializeCulture();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            ProcesarParametros();
    }

    private void ProcesarParametros()
    {
        if (Session["TramiteId"] != null && Session["TramiteId"] is int &&
            !string.IsNullOrEmpty(Session["TramiteId"].ToString()))
        {
            int tramiteId = 0;
            try
            {
                tramiteId = Convert.ToInt32(Session["TramiteId"].ToString());
            }
            catch (Exception ex)
            {
                log.Error("Ocurrio un error al convertir Session['TramiteId'].ToString() a un valor entero",ex);
            }
            Session["TramiteId"] = null;
            if (tramiteId <= 0)
                return;
            TramiteIdHiddenField.Value = tramiteId.ToString();
            MostrarTramite(tramiteId);
        }
        else
        {
            Response.Redirect(Resources.MasterPage.MenuZonaClientesUrl);
        }
    }

    private void MostrarTramite(int tramiteId)
    {
        ErrorAlert.Visible = false;
        Tramite objTramite = null;
        try
        {
            objTramite = ConsultaTramiteCRN.GetTramiteDetails(tramiteId);
        }
        catch (Exception ex)
        {
            log.Error("No se pudo obtener los datos del tramite", ex);
        }
        if (objTramite == null)
        {
            Print.Visible = false;
            ErrorAlert.Visible = true;
            detalleTramite.Visible = false;
            return;
        }            

        CodigoTramite.Text = objTramite.CodigoServicio;
        TipoTramite .Text = objTramite.TipoTramiteForDisplay;
        EstadoTramite.Text = objTramite.Estado;
        FechaInicio.Text = objTramite.FechaInicio.ToShortDateString();
        FechaFinalizacion.Text = objTramite.FechaFin == DateTime.MinValue ? "-" : objTramite.FechaFin.ToShortDateString();
        FechaEntrega.Text = objTramite.FechaEntrega == DateTime.MinValue && objTramite.Estado.Equals("Entregado") ? Resources.StepDetails.NoDisponible :
            objTramite.FechaEntrega == DateTime.MinValue ? "-" : objTramite.FechaEntrega.ToShortDateString();
        Responsables.Text = objTramite.ResponsablesForDisplay;
        Clientes.Text = objTramite.InvolucradosForDisplay;
        Observacion.Text = objTramite.Observacion;

        if (!objTramite.Estado.Equals("Entregado"))
        {
            DatosEntrega.Visible = false;
            return;
        }

        EntregadoA.Text = string.IsNullOrEmpty(objTramite.EntregadoA) && objTramite.Estado.Equals("Entregado") ? Resources.StepDetails.NoDisponible :
            string.IsNullOrEmpty(objTramite.EntregadoA) ? "-" : objTramite.EntregadoA;
        ObservacionEntrega.Text = string.IsNullOrEmpty(objTramite.ObservacionEntrega) ? "-" : objTramite.ObservacionEntrega;

        ActividadGridView.DataBind();
    }

    protected void ActividadesDataSource_Selected(object sender, ObjectDataSourceStatusEventArgs e)
    {
        if (e.Exception != null)
        {
            log.Error("Ocurrio un error a obtener las actividades del Tramite", e.Exception);
            e.ExceptionHandled = true;
        }
    }
}